<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <script src="jquery.min.js"></script>
  <script>
    $(function () {
      // let targetObj = {}
      // let obj = {
      //   id: 1,
      //   name: 'andy'
      // };
      // // $.extend(target, obj)
      // $.extend(targetObj, obj)
      // console.log(targetObj)

      // let targetObj = {
      //   id: 0
      // }
      // let obj = {
      //   id: 1,
      //   name: 'andy'
      // };
      // // $.extend(target, obj)
      // $.extend(targetObj, obj) // 会对以前的数据进行覆盖
      // console.log(targetObj)

      let targetObj = {
        id: 0,
        age: 18
      }
      let obj = {
        id: 1,
        name: 'andy',
        msg: {
          age: 18
        }
      };
      // $.extend(target, obj)
      // $.extend(targetObj, obj) // 会对以前的数据进行覆盖 和 合并
      // console.log(targetObj)
      // // extend 只有复杂数据类型(msg) 是属于浅拷贝
      // targetObj.msg.age = 20
      // console.log(targetObj)
      // console.log(obj)

      // 2. 深拷贝把里面的数据完全复制一份给目标文件 如果里面有不冲突的属性 会合并到一起
      $.extend(true, targetObj, obj) // 会对以前的数据进行覆盖 和 合并
      console.log(targetObj)
      // extend 当地一个参数被设置成true时 就执行全部数据类型的深拷贝
      targetObj.msg.age = 20
      console.log(targetObj)
      console.log(obj)
    })
  </script>
</head>

<body>

</body>

</html>